package config

type Mysql struct {
	Host               string `mapstructure:"host" json:"host" yaml:"host"`                                               // 服务器地址
	Port               string `mapstructure:"port" json:"port" yaml:"port"`                                               // 端口
	Config             string `mapstructure:"config" json:"config" yaml:"config"`                                         // 高级配置
	Dbname             string `mapstructure:"db-name" json:"dbname" yaml:"db-name"`                                       // 数据库名
	Username           string `mapstructure:"username" json:"username" yaml:"username"`                                   // 数据库用户名
	Password           string `mapstructure:"password" json:"password" yaml:"password"`                                   // 数据库密码
	MaxIdleConnections int    `mapstructure:"max-idle-connections" json:"maxIdleConnections" yaml:"max-idle-connections"` // 空闲中的最大连接数
	MaxOpenConnections int    `mapstructure:"max-open-connections" json:"maxOpenConnections" yaml:"max-open-connections"` // 打开到数据库的最大连接数
	LogMode            string `mapstructure:"log-mode" json:"logMode" yaml:"log-mode"`                                    // 是否开启Gorm全局日志
	LogZap             bool   `mapstructure:"log-zap" json:"logZap" yaml:"log-zap"`                                       // 是否通过zap写入日志文件
}

func (m *Mysql) Dsn() string {
	return m.Username + ":" + m.Password + "@tcp(" + m.Host + ":" + m.Port + ")/" + m.Dbname + "?" + m.Config
}
